package com.zjsru.leetcode75.level1;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author: cookLee
 * @Date: 2023-10-06
 * 独一无二的出现次数
 */
public class UniqueOccurrences {

    /**
     * 主
     * \
     * 输入：arr = [1,2,2,1,1,3]
     * 输出：true
     * 解释：在该数组中，1 出现了 3 次，2 出现了 2 次，3 只出现了 1 次。没有两个数的出现次数相同。
     * \
     * 输入：arr = [1,2]
     * 输出：false
     * \
     * 输入：arr = [-3,0,1,-3,1,1,1,-3,10,0]
     * 输出：true
     * \
     * @param args args
     */
    public static void main(String[] args) {
        UniqueOccurrences uniqueOccurrences = new UniqueOccurrences();
        int[] arr = new int[]{1, 2, 2, 1, 1, 3};
        System.out.println(uniqueOccurrences.uniqueOccurrences(arr));
    }

    public boolean uniqueOccurrences(int[] arr) {
        Map<Integer,Integer> uniqueMap = new HashMap<>();
        Arrays.stream(arr).forEach(v -> {
            uniqueMap.put(v ,uniqueMap.getOrDefault(v,0) + 1);
        });
        long count = uniqueMap.values().stream().distinct().count();
        return count == uniqueMap.size();
    }

}
